linux

您所在的位置:网站首页 in function _start linux

linux

2024-07-07 18:49| 来源: 网络整理| 查看: 265

根本原因:

当 GCC 调用的 LD 开始解析库依赖关系时,问题实际上就发生了。GCC 和 LD 都知道包含库的 sysroot,但是 LD 可能缺少一个关键组件:/etc/ld.so.conf 文件。这是来自 Raspberry PI 系统的 exampleld.so.conf 文件:

包括 /etc/ld.so.conf.d/*.conf

/etc/ld.so.conf.d 目录包含以下文件:

00-vmcs.conf: /opt/vc/lib

arm-linux-gnueabihf.conf:

/lib/arm-linux-gnueabihf /usr/lib/arm-linux-gnueabihf

libc.conf:

/usr/local/lib

通用解决方案

 

通过将 LD 配置文件复制到跨工具链的 LD 可以找到它们的位置,可以轻松解决该问题。但是有一个陷阱:如果您的跨工具链是使用 MinGW 构建的(大多数都是),它可能无法访问 glob() 函数,因此它将无法解析启用通配符的包含语句,如 *.conf . 这里的解决方法是手动组合 /etc/ld.so.conf.d 中所有 .conf 文件的内容并将它们粘贴到/etc/ld.so.conf

*/opt/vc/lib

/lib/arm-linux-gnueabihf

/usr/lib/arm-linux-gnueabihf

/usr/local/lib*

在正确的文件夹中创建 ld.so.conf 文件后,您的工具链将能够自动解析所有共享库引用,您将不会再看到该错误消息!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3